#include <cstdio>

#ifndef DESP_H
#define DESP_H
#define SEMILLA 4
#define PRIMER_NIVEL_INF 0
#define PRIMER_NIVEL_SUP 12
#define SEGUNDO_NIVEL_INF PRIMER_NIVEL_INF+16
#define SEGUNDO_NIVEL_SUP PRIMER_NIVEL_SUP+16
#define TERCER_NIVEL_INF SEGUNDO_NIVEL_INF+16
#define TERCER_NIVEL_SUP SEGUNDO_NIVEL_SUP+16
#define CUARTO_NIVEL_INF TERCER_NIVEL_INF+16
#define CUARTO_NIVEL_SUP TERCER_NIVEL_SUP+16

class Desplazamiento{
private:
	size_t semilla;
	size_t actual_bit_value;
	size_t pos_columna(size_t& idx,size_t& fila);
	size_t pos_fila(size_t& idx);
	size_t& obtener_valor(size_t& idx);
	size_t obtner_columna_fila1_o_fila2(size_t& idx,size_t& fila);
	size_t obtner_columna_fila0_o_fila3(size_t& idx,size_t& fila);
public:
	Desplazamiento();
	size_t& operator[](size_t& idx);
	
};
#endif
